/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package de.hsos.samcomm.userManagement.boundary.jsf;

import de.hsos.samcomm.common.MessageHandler;
import de.hsos.samcomm.userManagement.controller.MemberDAO;
import java.util.MissingResourceException;
import javax.enterprise.inject.Model;
import javax.inject.Inject;
import javax.validation.constraints.Size;

/**
 * Diese Bean ist für die Registrierung eines Benutzer zuständig.
 *
 * @author felix
 */
@Model
public class RegisterBean {
    @Inject
    private MemberDAO memberDAO;

    @Size(min=3, max=30, message="{register.nickname.size}")
    private String nickname;
    private String email;
    @Size(min=6, max=20, message="{register.password.size}")
    private String pwd1;
    private String pwd2;

    /**
     * Default Konstruktor.
     */
    public RegisterBean() {}

    /**
     * Registriert einen neün Benutzer.
     *
     * @return die Adresse der neün Seite.
     */
    public String newMember() {
        try {
            if (pwd1.equals(pwd2)) {
                memberDAO.createMember(nickname, email, pwd1);
                //MessageHandler.addContextFacesMessage(FacesMessage.SEVERITY_INFO, "register.message.success", "");
            }

            return "./login.xhtml";
        }
        catch (MissingResourceException ex) {
            MessageHandler.addExceptionFacesMessage(ex);
        }

        return "";
    }


    /**
     * Setzt alle Strings zurück.
     */
    private void clear() {
        nickname = "";
        email = "";
        pwd1 = "";
        pwd2 = "";
    }

    /**
     * Get-Methode für den Benutzernamen.
     *
     * @return nickname
     */
    public String getNickname() {
        return nickname;
    }

    /**
     * Get-Methode für die E-Mail.
     *
     * @return email
     */
    public String getEmail() {
        return email;
    }

    /**
     * Get-Methode für das erste Passwort.
     *
     * @return pwd1
     */
    public String getPwd1() {
        return pwd1;
    }

    /**
     * Get-Methode für das zweite Passwort.
     *
     * @return pwd2
     */
    public String getPwd2() {
        return pwd2;
    }

    /**
     * Set-Methode für den Benutzernamen.
     *
     * @param nickname
     */
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    /**
     * Set-Methode für die E-Mail.
     *
     * @param email
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * Set-Methode für das erste Passwort.
     *
     * @param pwd1
     */
    public void setPwd1(String pwd1) {
        this.pwd1 = pwd1;
    }

    /**
     * Set-Methode für das zweite Passwort.
     *
     * @param pwd2
     */
    public void setPwd2(String pwd2) {
        this.pwd2 = pwd2;
    }

}
